
thinkingParticles' HFragmenter redefines your way of working with special
effects on destruction sequences. This thinkingParticles operator is one
of the most powerful features implemented so far, it's pretty complex
and flexible beyond imagination.
We do suggest to take your time to learn this powerful new tool, one way
to get started with HFragmenter is to check out all the sample scenes
that came with thinkingParticles.
Hfragmenter is all about structuring complex physics into one single
easy to use interface and keeping full control at all times. HFragmenter
is a Hierarchical Destrcution (fragmentation) set of tools. It's not only
one thinkingParticles node it is a set of multiple tools,
all inter-linked and working together with each other.
There are 3 tools that come with thinkingParticles that are meant to work
together and offer automatic direct linking between each other. The tools
are:
The purpose of the tools listed above is to help you in creating a structural
skeleton that is based on freely adjustable physical parameters and hierarchical
ordering of components of the object to be destroyed. This unique approach
lets you freely define the breaking parts of an object along with when
and how they will break off. Once a structural skeleton has been defined,
it can be altered and adjusted to your needs any time.
There is one main rule to follow with this tool-set the "final"
object that is to be broken needs to be one
mesh. It can not be individual objects, all faces or parts of the object
need to be collapsed into one mesh. Find below an example to illustrate
the one mesh rule.
Example:
You want to destroy a model of a complete building. Some of the components
of a building may be:
Roof Shingles
Roof Beams
Walls
Windows
Window Frames
Doors
Chairs
Sofas
Chimney
Tables
All of the above objects can easily add up to a count of hundreds of objects or even thousands. Remember, all those objects need to end up in one single Mesh. The magic of HFragmenter comes into play when the HFragmenter Modifier is used, after the model is constructed, to define the "destruction groups," by simply selecting the elements in that single mesh and naming them accordingly. Using proper hierarchical structuring allows to easily define the order of destruction and the "chunks" that should break apart from the main mesh piece by piece
Collapsing thousands of objects into one mesh and then assigning each
element to a specific group can be a really tiresome task.
While HFragmenter Modifier offers all the necessary tools to define a structural
skeleton in no time at all - there is another tool that can help in getting
complex setups much faster. The 3ds Max utility TP Collapse
automatically prepares complex 3ds Max rigs to be used by HFragmenter
Modifier; in fact it automatically collapses multiple linked objects into
one Mesh and assigns proper Fragmenter Groups. To learn more about the
TP Collapse Utility CLICK
HERE
The main idea behind the "one mesh" solution is to enable
the shape collision engine to handle huge amounts of complex objects interacting
with each other. "Carving out" chunks of debris or fragments
from one single mesh helps the collision engine to interact and calculate
only those parts of the object relevant to the actual effect at that time.
Another key advantage of the "one mesh" approach is the preservation
of mass that comes for free by using the one mesh approach. Imagine a
3D model of a huge building with several stories and each level of the
building has multiple rooms and assets in it like chairs, tables, doors,
carpets,lamps and so on. To simulate a total collapse of such a building
caused by an earth quake for example it would be a massive task for the
physics engine to handle every single object on its own. It's more efficient
to start breaking the object off as the disaster progresses through the
structure and as the building breaks the individual components can be
released as well.
ON - feed a "True"
value into this input to enable the operator and its functionality.
Time - every operator can have its own "local" time,
you may feed any Time value into this input.
Activation Value - when connected, this input overwrites the "Value"
spinner control and feeds in the value.
Activation Code - to procedurally control the activation of the
fragmentation "at will", you may feed in any value to this input.
Joint Break Code - to release (break) one or multiple joints you
may use this input to specify the value that will be used to break a joint.
Joint Break Use Light - to directly control the "Use Light"
switch for breaking joints, connect this input to any other operator offering
a boolean result/value.
Activation Use Light - connect any operator to this boolean input
to control the activation/deactivation of the global "Use Light"
switch for Fragment groups.
Activation Map Multiplier - to procedurally control the Map Multiplier
value, connect any operator to this input.
*Born Particle - outputs
the particle data of the "just created" particle (fragment).
This is an Initiator output - this means this output activates connected
nodes as well!
*Born Node - outputs the node data of the relevant object that
was used ot create the fragment.
*Born Node ID - outputs the thinkingParicles node ID of the object
used to create the fragments. The first picked object is Node ID = 0
*Parent Particle - outputs the "parent" particle, it's
the particle that was previously a fragment and can be used to fragment
again - or it is the first particle (the original).

Pick- click this button to enter Object pick mode. Pick one or
many many objects from within the scene to bring it into the HFragmenter
Operator.
REM.- removes the selected object
Unhide- unhides the selected object.

In the Activation menu section you'll find all controls to "trigger"
the breaking (fragmentation) events. It is important to remember that
any trigger value set to 0 (zero) means that the relevant trigger is deactivated
(off).
Trigger Values like Value, Map, Code or Lights set here will trigger a breaking of the object based on the values set in all of the hierarchy levels found in the FGroup menu section of this dialog.
Value - sets the global
trigger "breaking value", this parameter value is compared to
each single Position parameter in the hierarchy level
as set in the HFragmenter Modifier section of the dialog.
Code - is a fixed number used to initiate an object breaking on
"will". Whenever this value is smaller or equal to the Code
parameter in the hierarchy level, as set in the HFragmenter Modifier section
of the dialog, the object is broken at the specified hierarchy level.
This Trigger overrules all other triggers on breaking an object.
Map - defines the breaking trigger value for the hierarchy levels
by using a standard 3ds Max texture map. The trigger values are defined
as: black color = 0 and white color = 1. This is also the value you would
use in the Map parameter found in the FGroup menu section
of the Hierarchy level to brake.
Map Multiplier - adjusts
the texture map values by multiplying the result gathered from the texture
map by this value.
Use Lights - when checked, the illumination strength of picked
light sources can be used to define the Hierarchical breaking of an object.
Pick - lets you pick any light in the scene
Rem - removes the selected light form the list of lights
Important
All triggers like Value, Map, Lights work fully independent of each
other; there is no interaction or connecten between them!
Spreading Size - is a radius
set in world units. Using this feature will create a progressive "breaking"
effect of an object. This "search" or affected radius is increased
in size over time (controlled by Spreading Time) it is
perfect to simulate shock waves running through a complex object hierarchy.
All objects (picked for this operator) falling into this radius will be
broken off , without testing any other possible trigger
events (Map,Light etc)!
Spreading Time - defines the time the radius needs to grow in
size (in frames: standard 3ds Max system time).
Spreading Gradient - lets you define the animation curve of the
spreading radius; this works similarly to an ease-in or ease-out curve.
The gradient is defined by the left hand side (representing radius size
0) and the right hand side (representing size 100%). A Spreading
Time value of 30 frames will look "into" this gradient
30 times (30 samples). This method of manipulation offers full control
over the radius size animation. A black color will create a radius of
0 while a white color in the gradient will create a size of 100%.

This rollout menu section makes most sense with objects fragmenting or
breaking into individual faces and not complete elements. To understand
the concept of 3ds Max elements check out the section about: What
is an Element.
All controls described below, create a "volume" out of individual
faces by extruding the face.
Thickness - used to define the thickness of the fragments in 3ds
Max world units.
Segments - sets the amount of segmentation along the extrude.
Outside ID - defines the Material ID for the original faces created
before the extrude. A value of 0 will use the original material ID.
Edge ID - sets the edge material ID (faces around the extrude
surface). A value of 0 will use the material ID of the original face that
will be extruded.
Backside ID - defines the Backside material ID (the cap of the
extrude). A value of 0 will use the same material ID as the original face
that will be extruded.

The joints menu section offers controls to define breaking triggers for
Dynamics joints. HFragmenter and HFragmenter Modifier together build the
foundation of the most comprehensive destruction tools ever developed
for 3ds Max. Besides breaking object hierarchies into elements, Physics
Dynamics based joints can also be used to define a complex object structure
for breaking.
Collision - each HFragmenter can be assigned to one specific shape
collision (SC) engine. Keep in mind that only the selected Shape
Collision engine is responsible for the simulation of the breaking effect.
Joint Break Code - defines the Joint breaking trigger value, this
value is similar to the Code parameter described in the
Activation menu section.
Use Lights to Break - when checked and when lights are picked
from the scene, the Joints can be broken off by the illumination levels
created by the selected light sources.
|
|
Fragmenter Group Selected |
Joint Selected |
HFragmenter uses the HFragmenter Modifier to define the structural skeleton
of the object that needs to be broken up. Without the Modifier to build
the hierarchy and define the elements of an object, the HFragmenter operator
is useless! Keep in mind that a proper setup of the structural skeleton
and pattern will save you an immense amount of after work in the long
run! Every minute or hour spent in planning the structural skeleton of
an object saves you days of re-adjusting or re-simming physics! Take this
as advice for good practice.
The Treeview of this dialog shows 2 different sub-object levels of the
HFragment modifier within the same dialog window. The first entry (by
default is called FGroup) shows the Hierarchy of the individual components
of which the object is made. Depending on the selection sets created with
the HFragment Modifier, the Faces or Elements will be visible all grouped
in separate levels or sub-levels.
In addition to the above, all available Joints will also be shown in this
dialog. Clicking on each Joint's name will show the corresponding rollout
menu with all its parameters. Unfolding (click the + sign) a Joint in
the Treeview will reveal the object names of the "Joint connections".
List View - reflects the object breaking hierarchy as a standard
collapsible tree view. Every "level" of the hierarchy can be
selected within this tree view and the relevant settings will be shown
in the FGroup Rollout Menu down below. In addition to the Faces and Elements,
Joints are shown in this Treeview as well.

The following properties are available when a FGroup is selected in the
Treeview
Group - sets the particle group used for the created fragments
of "that" (selected) level of the hierarchy.
Value - sets the value at
which breaking of this level of the hierarchy should be done. Whenever
Value equals or is bigger than the global Trigger value
the objects in that "level" are broken off (fragmented).
Code - if this fixed number is equal or bigger than the global
Trigger value of the same name, the level of this hierarchy is broken
off along with all sub levels underneath this hierarchy.
Map - sets the value that needs to be equal or bigger as compared
to the global texture map trigger, to break off the hierarchy at this
level.
Light - defines a threshold for the Illumination value that needs
to be equal to this value or higher, for all picked light sources, to
trigger a fragmentation.
Spreading - check this option to allow the selected (and only
the selected) Hierarchy Level to be affected by the "spreading"
function of the HFragmenter. Turn this option off to disable for the selected
Hierarchy level the "spreading" function.
Use Lights - when checked, illumination strength of picked light
sources can be used to define the Hierarchical breaking of an object.
When a light is picked in the FGroup Rollout, the lights picked in the global menu section above will not be used at all for this selected Hierarchy Level. The selected light(s) will only affect one Hierarchy Level down below; Sub-Hierarchy levels will not be affected
Pick - lets you pick any
light in the scene
Rem - removes the selected light form the list of lights

The properties listed below will show up when a Joint is selected.
Breakable - check this option to make a joint breakable. Every
joint type can be turned into a "breaking" joint, so whenever
any of the trigger values are kicking in, the link will be automatically
broken.
Velocity - defines the speed at which the objects, connected to
the joint, need to travel away to break the joint.
Rotation - sets the maximum rotational speed a joint can endure
before it breaks off. This simulates the centrifugal force that may appear
on fast rotating masses.
Code - sets a definable trigger number; whenever this number is
set the joint is broken off
Light - sets the lights intensity that need to be reached to break
off a joint. The illumination is measured at the center of the joint.
Collision - check this option to enable self collision between
joint partners.
Friction - sets the friction amount for the selected joint to
create a more natural looking dampening system of joints.
Important
The Light values set here behave like a threshold; if the light value
is brighter than the value set here, the hierarchy level is broken
off.